package com.icoolkj.learn.juc.base;

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;

/**
 * @author icoolkj
 * @version 1.0
 * @description 类说明：只有一个main方法的程序
 * Java 管理扩展（Java Management Extensions，JMX）
 * ThreadMXBean 是一个 MXBean 接口，它提供了管理和监控 Java 线程的功能。
 * 通过 ManagementFactory.getThreadMXBean() 方法可以获取 ThreadMXBean 的实例，
 * 进而使用该实例来获取有关线程的各种信息，例如线程的状态、CPU 时间、线程的堆栈跟踪等。
 * @createDate 2025/03/04 09:02
 */
public class OnlyMain {

    public static void main(String[] args) {
        // JAVA 虚拟机线程系统的管理接口
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        // 不需要获取同步的 monitor 和 synchronizer 信息，仅仅获取线程和线程栈信息
        ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
        // 遍历线程信息，仅打印线程 ID 和线程名称信息
        for (ThreadInfo threadInfo : threadInfos) {
            System.out.println("[" + threadInfo.getThreadId() + "] " + threadInfo.getThreadName());
        }

    }

}
